package com.sailing.xjpb.orm.query.annotation;


import com.sailing.xjpb.orm.query.ConditionType;

import java.lang.annotation.*;

/**
 * 查询条件注解
 * 标识字段需要被解析为SQL查询条件
 *
 * @author YaoWei
 * createDate: 2020/12/17 21:19
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Condition {

    /**
     * 表别名
     *
     * @return String
     */
    String tabAis() default "";

    /**
     * 列别名
     *
     * @return String
     */
    String columnAis() default "";

    /**
     * 是否忽略为空值的字段，如果为false生成SQL:xxx is null
     *
     * @return boolean
     * @Title: ignoreNull
     * @author YaoWei
     */
    boolean ignoreNull() default true;

    /**
     * 条件（EQ|IN|LIKE....）
     *
     * @return ConditionType
     * @Title: type
     * @author YaoWei
     */
    ConditionType type() default ConditionType.EQ;

}
